package test;

import java.util.jar.Attributes.Name;

/**
 * @category 访问修饰符
 *	
 */
public class Accessmodifier {
	//重点：访问修饰符在哪个地方修饰了之后，在哪个地方可以用
	//访问修饰符-访问控制权限
	
	// public 公有的
	// 作用：对所有的类都可见。即：可以在当前工程任意文件中访问使用
	// 主要使用位置：类(文件)成员(变量和方法)、接口等等
	// public修饰的外部类必须与文件同名，且该文件中有且仅有一个Public修饰的外部类
	public void nn() {}
	//private 私有的
	//在当前的类体范围之内可见，即在当前文件中可见
	//主要使用位置:出鞥远(方法+变量)
	//PS: 不能修饰外部类[只能修饰当前的类，如果在当前文件中再定义一个类，则不可以使用private定义]
	private void pp() {}
	//--默认的/缺省的(不是一个关键字)
	//对同包内可见。即：对当前包中任意文件访问使用;如果是方法，就结合class理解，因为一般定义class就是默认类型，可以在同包内的所有文件中使用
	//例如void function(){}, 因此他的访问限制规则：默认的，友好的，缺省的，包
	//主要使用位置：类(文件)成员(方法)
	//void func(){}   [无访问修饰符]
	void func() {}
	//protected--保护的//
	//作用：对同包内和所有子类可见(子包/上级包/并列包都不可以)
	//主要使用位置:成员
	//PS!!由于缺省的类在同一个包中都可以访问到，因此当做笔记出现class A class B class C的时候，尽量建立不同的包，以免引发错误
	//PS: 不能修饰外部类
	//子类与基类在同包中：被声明的protected的成员能被同包中的任意类访问
	//在子类中，子类实例可以访问其从基类继承而来的protected成员
	//而基类实例不能访问protected
	protected void name() {}
	
}
